public SELF matchesHeaders(Iterable<String> headerPredicates) {
        this.headerPredicates.addAll(RoutingPredicate.copyOfHeaderPredicates(
                requireNonNull(headerPredicates, "headerPredicates")));
        return self();
    }
Sets the {@link Route} to accept a request if it matches all the specified predicates for
{@link HttpHeaders}. The predicate can be one of the following forms:
<ul>
    <li>{@code some-header=some-value} which means that the request must have a
    {@code some-header: some-value} header</li>
    <li>{@code some-header!=some-value} which means that the request must not have a
    {@code some-header: some-value} an header</li>
    <li>{@code some-header} which means that the request must contain a {@code some-header} header</li>
    <li>{@code !some-header} which means that the request must not contain a {@code some-header}
    header</li>
</ul>

@see MatchesHeader
core/src/main/java/com/linecorp/armeria/server/AbstractBindingBuilder.java