     @addRoute route, listener  for own route, listener of routes
 
   handleRoute:(userRoute, options={})->
+
+    @visitedRoutes.push userRoute
 
     [frag, query...] = (userRoute ? @getDefaultRoute?() ? '/').split '?'
 


  constructor:(routes)->
    super()
    @tree   = {} # this is the tree for quick lookups
    @routes = {} # this is the flat namespace containing all routes
    @addRoutes routes

  listen:->

  clear:(route = '/', replaceState = yes)->
    delete @userRoute # TODO: i hope deleting the userRoute here doesn't break anything... C.T.
    @handleRoute route, {replaceState}

  back:-> if @visitedRoutes.length <= 1 then @clear() else history.back()

  startListening:->
    return no  if @isListening # make this action idempotent
