anchor.diff:    // update the references to the activeRoute and previousRoute. if you switch between routes quickly you may go to a
     // new route before the previous route's transition animation has completed. if that's the case we need to remove
     // the previous route's content before we replace the reference to the previous route.
  -  if (router.previousRoute != null &&
  -      router.previousRoute.transitionAnimationInProgress) {
  -    transitionAnimationEnd(router.previousRoute);
  -  }
  -  if (router.activeRoute != null) {
  -    router.activeRoute.active = false;
  -  }
  -  router.previousRoute = router.activeRoute;
  -  router.activeRoute = route;
  -  router.activeRoute.active = true;
  +  if (router._previousRoute != null &&
  +      router._previousRoute.transitionAnimationInProgress) {
  +    transitionAnimationEnd(router._previousRoute);
  +  }
  +  if (router._activeRoute != null) {
  +    router._activeRoute.active = false;
  +  }
  +  router._previousRoute = router._activeRoute;
  +  router._activeRoute = route;
  +  router._activeRoute.active = true;
   
     // import custom element or template
     if (route.imp != null) {
  
positive.code: 
  import 'src/routeUri.dart';
  
  Map importedURIs = {};
  RouteUri previousUrl = new RouteUri.parse(window.location.href, "auto");
  
  /// web-router is a router element.
  /// Example usage:
  /// 	<app-router [init="auto|manual"] [mode="auto|hash|pushstate"] [trailingSlash="strict|ignore"] [shadow]></app-router>
  /// 	<app-router core_animated_pages transitions="hero-transition cross-fade">
  @CustomTag('web-router')
  class WebRouter extends PolymerElement {
  
negative.code:     }
  
      // dispatch a popstate event
      PopStateEvent popStateEvent = new Event.eventType(
          'PopStateEvent', 'popstate', canBubble: false, cancelable: false);
      window.dispatchEvent(popStateEvent);
    }
  
    /// Find the first <web-route> that matches the current URL and change the active route.
    void _update() {
      RouteUri url = new RouteUri.parse(window.location.href, mode);
  
      // don't load a new route if only the hash fragment changed
      if (url.hash != _previousUrl.hash &&
          url.path == _previousUrl.path &&
          url.search == _previousUrl.search &&
          url.isHashPath == _previousUrl.isHashPath) {
        scrollToHash(url.hash);
        return;
      }
      _previousUrl = url;
  
      // 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;
      }
  
      // find the first matching route
      List<Element> elems;
      if (core_animated_pages) {
        elems = _coreAnimatedPages.children;
      } else {
        elems = children;
      }
      for (Element route in elems) {
        if (route is WebRoute) {
          if (testRoute(route.path, url.path, trailingSlash, route.regex)) {
            activateRoute(this, route, url);
            return;
          }
        }
      }
  
      fireEvent('route-not-found', eventDetail, this);
    }
  
    /// fireEvent(type, detail, node) - Fire a new CustomEvent(type, detail) on the node
  