I'm not sure I understand your concern about breaking reactivity, but you can definitely avoid routers if you want, simply by using things like UI.dynamic (http://docs.meteor.com/#ui_dynamic):
{{> UI.dynamic template=templateName [data=dataContext]}}
Choose a template to include dynamically, by name.
UI.dynamic allows you to include a template by name, where the name
may be calculated by a helper and may change reactively. The data
argument is optional, and if it is omitted, the current data context
is used.
For example, if there is a template named "foo", {{> UI.dynamic
template="foo"}} is equivalent to {{> foo}}.
The helper that decides which template to render could be a simple lookup of a session variable (e.g., Session.get('page')) and then changing the current template could be done by setting that variable (e.g., Session.set('page', "blog")).