Subroute navigation

Let's rename `_matchingRoutes` to something else - it would seem to indicate that we're just fetching routes, not also mutating their state