public static ServletModule guiceFilterModule(final String pattern) {
        return new ServletModule() {
            @Override
            protected void configureServlets() {
                filter(pattern).through(GuiceShiroFilter.class);
            }
        };
    }
We use a LinkedHashMap here to ensure that iterator order is the same as add order.  This is important, as the
FilterChainResolver uses iterator order when searching for a matching chain.
support/guice/src/main/java/org/apache/shiro/guice/web/ShiroWebModule.java