code: public String describeMismatch(final Request request) {
          final Description desc = new StringDescription();
          
          boolean first = true;
          for (final Iterator<Matcher<? super Request>> it = this.predicates.iterator(); it.hasNext();) {
              final Matcher<? super Request> m = it.next();
              
              if (!m.matches(request)) {
                  if (!first) {
                      desc.appendText(" AND\n");
                  }
                  desc.appendText("  ");
                  m.describeMismatch(request, desc);
                  first = false;
              }
          }
          return desc.toString();
      }
docs: Returns a reason why the given request doesn't match this rule. This method should be called if
  and only if {@link  #matches(net.jadler.Request)} would return {@code false}. However, this is not checked.
  @param request an http request to describe the mismatch for
  @return a human readable mismatch reason