Global menu aurelia router

I want to make a global menu for my application, something like:

  • page 1
    • page 1 / sub 1
    • page 1 / sub 2
  • page 2
    • page 2 / sub 1
    • […]

I have a single parent router, which points to modules with child routers. Since the child routers are lazy loaded, I have a service which represents the menu structure, and I then rely on router events (e.g. router:navigation:complete), to see where I currently am. Sometimes, a page is only a wrapper around menu items, so the topmost page is configured with redirect:

  • page 3 / (subrouter X) { route: ‘’, redirect: ‘sub 1’ }
    • sub 1 / (subrouter X) { route: [‘sub 1’], nav: true …}

If a user clicks the top-level item (e.g. page 3), he/she is redirected to the submenu item ‘sub 1’. The ‘Page 3’ module is just a component with a router-view and a configureRouter, to configure the child routes. The problem is however that the router event router:navigation:complete, returns the NavModel of page 3, not the NavModel of page 3 -> sub 1. It looks something like this:

    config: {route: "Page 3/*childRoute",  name: "Page 3" ...},
    params: {childRoute: "sub 1"},

I would have expected to get the NavModel of ‘sub 1’ here, which is not the case. The problem is, that I can’t really know where the user is at at this point, without having to process the information, match the url with whatever rules might be there etc. Is there any other way to do this, am I doing something wrong or missing something obvious?