@Override
    public List<Routed<O>> findAll(RoutingContext routingContext) {
        // TODO(trustin): Optimize for the case where `delegates.size() == 0 or 1`
        //                by using a different implementation instead of a dynamic switch.
        final int numDelegates = delegates.size();
        switch (numDelegates) {
            case 0:
                return ImmutableList.of();
            case 1:
                return delegates.get(0).findAll(routingContext).stream()
                                .map(resultMapper)
                                .collect(toImmutableList());
            default:
                return delegates.stream()
                                .flatMap(delegate -> delegate.findAll(routingContext).stream())
                                .map(resultMapper)
                                .collect(toImmutableList());
        }
    }
A {@link Router} implementation that enables composing multiple {@link Router}s into one.
core/src/main/java/com/linecorp/armeria/server/CompositeRouter.java