anchor.diff:  ///
   /// Returns the [Uri] to redirect to or `null` if no redirect is defined.
   Uri findRedirect(Uri requestUri) {
  -  var path = requestUri.path;
  -  String match;
  -
     if (requestUri.pathSegments.isEmpty) {
       return _listIssues;
     }
   
  -  match = _checkMatch(issueRegExp, path);
  -  if (match != null) {
  -    return _showIssue.resolve(match);
  -  }
  -
  -  match = _checkMatch(newRegExp, path);
  -  if (match != null) {
  -    return _newIssue;
  -  }
  -
  -  match = _checkMatch(assignedRegExp, path);
  -  if (match != null) {
  -    return _assignedIssues.resolve(match);
  -  }
  -
  -  match = _checkMatch(openedRegExp, path);
  -  if (match != null) {
  -    return _openedIssues.resolve(match);
  -  }
  -
  -  match = _checkMatch(areaRegExp, path);
  -  if (match != null) {
  -    return _listIssues.replace(
  -      queryParameters: {
  -        'label': 'area-$match',
  -      },
  -    );
  -  }
  -
  -  match = _checkMatch(triageRegExp, path);
  -  if (match != null) {
  -    return _listIssues.replace(
  -      queryParameters: {
  -        'q': [
  -          'is:issue',
  -          'is:open',
  -          ..._areaLabels.map((label) => '-label:$label'),
  -        ].join(' '),
  -      },
  -    );
  +  for (var entry in _matchers.entries) {
  +    var match = _checkMatch(entry.key, requestUri.path);
  +    if (match != null) {
  +      return entry.value(match);
  +    }
     }
   
     // No redirect found.
  
positive.code: const organization = 'dart-lang';
  const repository = 'sdk';
  
  // Regular expressions for matching the request URI
  final issueRegExp = RegExp(r'^/([0-9]+)$');
  final newRegExp = RegExp(r'^/new$', caseSensitive: false);
  final assignedRegExp = RegExp(r'^/assigned/([A-Za-z0-9\-]+)$');
  final openedRegExp = RegExp(r'^/opened/([A-Za-z0-9\-]+)$');
  final areaRegExp = RegExp(r'^/area/([A-Za-z0-9\-]+)$');
  final triageRegExp = RegExp(r'^/triage$', caseSensitive: false);
  
  // Redirect URIs
  final _rootUri = '$gitHub/$organization/$repository';
  final _listIssues = Uri.parse('$_rootUri/issues');
  
negative.code: final _newIssue = Uri.parse('$_rootUri/issues/new');
  final _assignedIssues = Uri.parse('$_rootUri/issues/assigned/');
  final _openedIssues = Uri.parse('$_rootUri/issues/created_by/');
  
  final _matchers = <RegExp, Uri Function(String)>{
    RegExp(r'^/([0-9]+)$'): _showIssue.resolve,
    RegExp(r'^/new$', caseSensitive: false): (_) => _newIssue,
    RegExp(r'^/assigned/([A-Za-z0-9\-]+)$'): _assignedIssues.resolve,
    RegExp(r'^/opened/([A-Za-z0-9\-]+)$'): _openedIssues.resolve,
    RegExp(r'^/area/([A-Za-z0-9\-]+)$'): (match) => _listIssues.replace(
          queryParameters: {
            'label': 'area-$match',
          },
        ),
    RegExp(r'^/triage$', caseSensitive: false): (_) => _listIssues.replace(
          queryParameters: {
            'q': [
              'is:issue',
              'is:open',
              ..._areaLabels.map((label) => '-label:$label'),
            ].join(' '),
          },
        )
  };
  
  String _checkMatch(RegExp re, String path) {
    var match = re.firstMatch(path);
  