As mentioned in #2 some logic should be reused from existing solutions, even if this only means reusing some logic.
By separating collecting routes and translating them we avoid misusing the router: one might want to add a route to the router where the router is used for translating routes.