I think this happens because the PrettyFilter detects the incoming requests and calls RequestDispatcher.forward() using the view-id of your mapping. This is expected behavior. The forwarded requests will be treated like every other request by the servlet engine and thus will be processed by the PrettyFilter again. But this forwarded request also matches the pattern of your mapping and so the value injected into the bean will be /test.jsf.
But I’ll have to take a deeper look at the PrettyFaces code to verify this.