code: function defaultUrlMatcher(segments, segmentGroup, route) {
      var parts = route.path.split('/');
      if (parts.length > segments.length) {
          // The actual URL is shorter than the config, no match
          return null;
      }
      if (route.pathMatch === 'full' &&
          (segmentGroup.hasChildren() || parts.length < segments.length)) {
          // The config is longer than the actual URL but we are looking for a full match, return null
          return null;
      }
      var posParams = {};
      // Check each config part against the actual URL
      for (var index = 0; index < parts.length; index++) {
          var part = parts[index];
          var segment = segments[index];
          var isParameter = part.startsWith(':');
          if (isParameter) {
              posParams[part.substring(1)] = segment;
          }
          else if (part !== segment.path) {
              // The actual URL part does not match the config, no match
              return null;
          }
      }
      return { consumed: segments.slice(0, parts.length), posParams: posParams };
  }
docs: Matches the route configuration (`route`) against the actual URL (`segments`).