anchor.diff:      _allowLeaveFutures.add(allow);
     }
   
  -  RouteEvent _clone() => new RouteEvent(path, parameters);
  +  RouteEvent _clone() => new RouteEvent(path, parameters, route);
   }
   
   abstract class Routable {
  
positive.code:   Future<bool> _processNewRoute(Route base, String path, UrlMatch match,
        Route newRoute) {
      _logger.finest('_processNewRoute $path');
      var event = new RouteEvent(match.match, match.parameters);
      // before we make this a new current route, leave the old
      return _leaveCurrentRoute(base, event).then((bool allowNavigation) {
        if (allowNavigation) {
          _unsetAllCurrentRoutes(base);
          base._currentRoute = newRoute;
          base._currentRoute._lastEvent =
              new RouteEvent(match.match, match.parameters);
          newRoute._onRouteController.add(event);
          return route(match.tail, startingFrom: newRoute);
        }
  
negative.code: class RouteEvent {
    final String path;
    final Map parameters;
    final Route route;
    var _allowLeaveFutures = <Future<bool>>[];
  
    RouteEvent(this.path, this.parameters, this.route);
  
    /**
     * Can be called on leave with the future which will complete with a boolean
  