     @start = null #not used ...
     @parts = []
     @args  = []
-    # #/abc/dsa/ => ["#", "abc", "dsa"]
+    # #/abc/dsa/ => ["#", "abc", "dsa"] or ["", "abc", "dsa"]
     parts = route.replace(/\/$/, "").split("/")
 
     # mark, this route not have a length and end

    return false if ((parts.length != @parts.length) && @end)
    #when it have a different length, but @parts len > given len
    return false if (@parts.length > 1) && parts.length < @parts.length

    is_named_part = (part) ->
      part.indexOf(":") == 0

            flow.apply(null, f.args)
          return

      if !result
        Sirius.Application.adapter.fire(document, "application:404", current, prev)
        #FIXME
        r404 = routes['404'] || routes[404]
        if r404
          z = new Sirius.ControlFlow(r404)
          z.handle_event(null, current)

      false


    if plain_routes.length != 0 # TODO && use_modern_routing ???
      # bind all <a> element with dispatch function, but bind only when href not contain "#"
      selector  = "a:not([href^='#'])"

      Sirius.Application.adapter.bind selector, "click", dispatcher

    window.onhashchange = dispatcher


    fn()

