code: public MatchResponse selectMatchResponse() {
          MatchResponse matchResponse = null;
  
          if (permitResponse != null && denyMatchByOmissionResponse == null && denyMatchResponse == null) {
              matchResponse = exactMatchResponse;
          } else if (exactMatchResponse != null && denyMatchByOmissionResponse != null && denyMatchResponse != null) {
              matchResponse = exactMatchResponse; 
          } else if (exactMatchResponse != null && denyMatchByOmissionResponse != null) {
              matchResponse = exactMatchResponse;
          } else if (exactMatchResponse != null && denyMatchResponse != null) {
              matchResponse = exactMatchResponse; 
          } else if (exactMatchResponse != null && denyMatchByOmissionResponse == null && denyMatchResponse == null) {
              matchResponse = exactMatchResponse;
          } else if (pathMatchResponse != null) {
              matchResponse = pathMatchResponse;
          } else if (extensionMatchResponse != null) {
              matchResponse = extensionMatchResponse;
          } else if (denyMatchResponse != null) {
              matchResponse = MatchResponse.DENY_MATCH_RESPONSE;
          } else if (denyMatchByOmissionResponse != null && exactMatchResponse == null) {
              matchResponse = MatchResponse.DENY_MATCH_RESPONSE;
          } else {
              matchResponse = defaultMatchResponse;
          }
  
          return matchResponse;
      }
docs: Selects the match response from this aggregate.
  <pre>
  To select the match response according to the Servlet 2.3 specification,
  Exact match has first priority.
  Path match comes next.
  Extension match comes after path match.
  No Match comes last.
  </pre>
  
  @return The match response.