Fix redirecting to child routes

This commit fixes two issues:

1. If, when routing to a route, a redirect hook
   "redirects" to where you were going anyway,
   the entire routing process would be aborted.
2. Previously, route contexts were not always
   taken into account when rerouting.