My current thinking on this topic is that it isn’t worth trying to jam application state into the router, so I just let the router route and manage application state completely separately, in one (or several) services specifically dedicated to that task. Since anything done in the router must be super-generic, it’s not going to be as feature-rich or easy to read as a dedicated service with domain-specific interfaces and descriptive method names. See this post for an example of what I’m talking about.