def try_matches
      eligable_matches.each do |match,idx|
        request.breadcrumb << match
        catch(:pass) {
          dispatch(match)
          return true
        }
        request.breadcrumb.pop # Current match passed, so pop the breadcrumb before the next iteration.
      end
      response.status = (!matches.empty? && eligable_matches.empty?) ? 403 : 404
    end
def try_matches
      eligable_matches.each do |match,idx|
        request.breadcrumb << match
        catch(:pass) {
          dispatch(match)
          return true
        }
        request.breadcrumb.pop # Current match passed, so pop the breadcrumb before the next iteration.
      end
      response.status = (!matches.empty? && eligable_matches.empty?) ? 403 : 404
    end
Tries to dispatch to each eligable match. If the first match _passes_, tries the second match and so on.
 If there are no eligable matches, or all eligable matches pass, an appropriate 4xx response status is set.