         # recursively alias this route without this optional edge:
         routeWithoutThisEdge = "/#{
           route.slice(0, i).concat(route.slice i + 1).join '/'
-          # route.filter (_, k)-> k isnt i
         }"
         @addRoute routeWithoutThisEdge, listener
         edge = edge.substr 0, len # get rid of the "?" from the route


    path = frag.join '/'

    if shouldPushState
      method = if options.replaceState then 'replaceState' else 'pushState'
      history[method] state, @getTitle(path), "/#{path}"

    for edge in frag
      if node[edge]


    listeners = node[listenerKey]
    if listeners?.length
      listener.call @, params, state, path for listener in listeners
