anchor.diff:    /// See [Route.getRoute]
     Route getRoute(String routePath) {
       Route r = _assertState(() => _getHost(_route).getRoute(routePath));
  +    if (r == null) return null;
       var handle = r.newHandle();
       if (handle != null) {
         _childHandles.add(handle);
  
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, base._currentRoute);
      // before we make this a new current route, leave the old
      return _leaveCurrentRoute(base, event).then((bool allowNavigation) {
        if (allowNavigation) {
  
negative.code:   RouteEvent _clone() => new RouteEvent(path, parameters, route);
  }
  
  /**
   * Event emitted when routing starts.
   */
  class RouteStartEvent {
  
    /**
     * URI that was passed to [Router.route].
     */
    final String uri;
  
    /**
     * Future that completes to a boolean value of whether the routing was
     * successful.
     */
    final Future<bool> completed;
  
    RouteStartEvent._new(this.uri, this.completed);
  }
  
  abstract class Routable {
    void configureRoute(Route router);
  }
  