anchor.diff:    bool _debugCurrentlyHaveRoute(Route route) {
       int index = _history.indexOf(route);
       return index >= 0 && index <= _currentPosition;
  +  }
  +
  +  void _didCompleteRoute(Route route) {
  +    assert(_history.contains(route));
  +    if (route.isActuallyOpaque) {
  +      setState(() {
  +        // we need to rebuild because our build function depends on
  +        // whether the route is opaque or not.
  +      });
  +    }
     }
   
     void _didDismissRoute(Route route) {
  
positive.code:   }
  
    void _handlePerformanceStatusChanged(PerformanceStatus status) {
      if (status == PerformanceStatus.dismissed) {
        _navigator._didDismissRoute(this);
        _navigator._removeRoute(this);
        _navigator = null;
  
negative.code:   }
  
    Duration get transitionDuration;
  
    Widget build(NavigatorState navigator, PerformanceView nextRoutePerformance);
  
  