private static boolean containsAllParameters(Map<String, List<String>> expectedParameters,
                                                 Map<String, List<String>> actualParameters) {
        if (expectedParameters.isEmpty()) {
            return true;
        }

        for (Entry<String, List<String>> requiredEntry : expectedParameters.entrySet()) {
            final String expectedName = requiredEntry.getKey();
            final List<String> expectedValues = requiredEntry.getValue();
            if (Q.equals(expectedName)) {
                continue;
            }

            final List<String> actualValues = actualParameters.get(expectedName);

            assert !expectedValues.isEmpty();
            if (actualValues == null || actualValues.isEmpty()) {
                // Does not contain any required values.
                return false;
            }

            if (!containsAllValues(expectedValues, actualValues)) {
                return false;
            }
        }

        return true;
    }
Returns {@code true} if {@code actualParameters} contains all entries of {@code expectedParameters}.
Note that this method does <b>not</b> require {@code actualParameters} to contain <b>only</b> the
entries of {@code expectedParameters}. i.e. {@code actualParameters} can contain an entry that's
non-existent in {@code expectedParameters}.
core/src/main/java/com/linecorp/armeria/common/MediaType.java