anchor.diff:  import 'package:gallery/studies/shrine/app.dart';
   import 'package:gallery/studies/starter/app.dart';
   
  -typedef PathWidgetBuilder = Widget Function(BuildContext, Map<String, String>);
  +typedef PathWidgetBuilder = Widget Function(BuildContext, String);
   
   class Path {
     const Path(this.pattern, this.builder);
  
positive.code:     for (final path in paths) {
        final regExpPattern = RegExp(path.pattern);
        if (regExpPattern.hasMatch(settings.name)) {
          final match = regExpPattern.firstMatch(settings.name);
          var groupNameToMatch = <String, String>{};
          for (final groupName in match.groupNames) {
            groupNameToMatch[groupName] = match.namedGroup(groupName);
          }
          if (kIsWeb) {
            return NoAnimationMaterialPageRoute<void>(
              builder: (context) => path.builder(context, groupNameToMatch),
              settings: settings,
            );
          }
          return MaterialPageRoute<void>(
            builder: (context) => path.builder(context, groupNameToMatch),
            settings: settings,
          );
        }
  
negative.code:   final String pattern;
  
    /// The builder for the associated pattern route. The first argument is the
    /// [BuildContext] and the second argument a RegEx match if that is included
    /// in the pattern.
    ///
    /// ```dart
    /// Path(
    ///   'r'^/demo/([\w-]+)$',
    ///   (context, matches) => Page(argument: match),
    /// )
    /// ```
    final PathWidgetBuilder builder;
  