code: public SipApplicationRouterInfo getNextApplication(SipServletRequest initialRequest, SipApplicationRoutingRegion region,
              SipApplicationRoutingDirective directive, SipTargetedRequestInfo targetedRequestInfo, Serializable stateInfo) {
          // Minimalist application router implementation with no processing logic
          // besides the declaration of the application order as specified in JSR 289 - Appendix C
          SipApplicationRouterInfo sipApplicationRouterInfo = null;
          if (initialRequest != null) {
              if (log.isDebugEnabled()) {
                  log.debug(this + " checking for next application for request " + initialRequest + " , region=" + region
                          + " , directive=" + directive + ", targetedRequestInfo=" + targetedRequestInfo + ", stateinfo="
                          + stateInfo + " with following dar " + defaultApplicationRouterParser.getProperties());
              }
              List<? extends SipApplicationRouterInfo> defaultSipApplicationRouterInfoList = defaultSipApplicationRouterInfos
                      .get(initialRequest.getMethod());
              sipApplicationRouterInfo = getNextApplication(initialRequest, stateInfo, defaultSipApplicationRouterInfoList);
              if (sipApplicationRouterInfo == null) {
                  defaultSipApplicationRouterInfoList = defaultSipApplicationRouterInfos.get(METHOD_WILDCARD);
                  sipApplicationRouterInfo = getNextApplication(initialRequest, stateInfo, defaultSipApplicationRouterInfoList);
              }
              if (sipApplicationRouterInfo != null) {
                  return sipApplicationRouterInfo;
              }
          }
          return new SipApplicationRouterInfo(null, null, null, null, null, null);
      }
docs: {@inheritDoc}