anchor.diff:      'route': route,
       'oldRoute': router._activeRoute
     };
  -  if (!router.fireEvent('activate-route-start', eventDetail, router)) {
  +  if (!_fireEvent('activate-route-start', eventDetail, router)) {
       //TODO: are dashes allowed in Polymer event names?
       return;
     }
  -  if (!router.fireEvent('activate-route-start', eventDetail, route)) {
  +  if (!_fireEvent('activate-route-start', eventDetail, route)) {
       return;
     }
   
  
positive.code: 
      // fire a state-change event on the app-router and return early if the user called event.preventDefault()
      Map<String, String> eventDetail = {'path': url.path};
      if (!fireEvent('state-change', eventDetail, this)) {
        return;
      }
  
  
negative.code:     scrollToHash(url.hash);
    }
  
    _fireEvent('activate-route-end', eventDetail, router);
    _fireEvent('activate-route-end', eventDetail, eventDetail['route']);
  }
  
  /// Call when the previousRoute has finished the transition animation out.
  