### Question:
DefaultSelectBuilder implements SelectBuilder<T> { @Override public <U> SelectBuilder<T> routingStage(SelectStage afterStage, Processor<SelectContext<U>> customStage) { return routingStage_NoGenerics(afterStage, customStage); } DefaultSelectBuilder(
            SelectContext<T> context,
            SelectProcessorFactory processorFactory); SelectContext<T> getContext(); @Override SelectBuilder<T> parent(Class<?> parentType, Object parentId, String relationshipFromParent); @Override SelectBuilder<T> parent(Class<?> parentType, Map<String, Object> parentIds, String relationshipFromParent); @Override SelectBuilder<T> parent(EntityParent<?> parent); @Override SelectBuilder<T> constraint(Constraint<T> constraint); @Override SelectBuilder<T> fetchLimit(int limit); @Override SelectBuilder<T> fetchOffset(int offset); @Override SelectBuilder<T> uri(UriInfo uriInfo); @Override SelectBuilder<T> encoder(Encoder encoder); @Override SelectBuilder<T> entityEncoderFilter(EntityEncoderFilter filter); @Override SelectBuilder<T> entityOverlay(AgEntityOverlay<A> overlay); @Override SelectBuilder<T> entityAttribute(String name, Class<V> valueType, Function<T, V> reader); @Override SelectBuilder<T> byId(Object id); @Override SelectBuilder<T> byId(Map<String, Object> ids); @Override SelectBuilder<T> routingStage(SelectStage afterStage, Processor<SelectContext<U>> customStage); @Override SelectBuilder<T> request(AgRequest agRequest); @Override DataResponse<T> get(); @Override DataResponse<T> getOne();  }### Answer:
@Test public void testRoutingStage_FunctionTypes() { createBuilder(P1.class) .routingStage(SelectStage.PARSE_REQUEST, this::doSomethingAndReturn0) .routingStage(SelectStage.PARSE_REQUEST, this::doSomethingAndReturn1) .routingStage(SelectStage.PARSE_REQUEST, this::doSomethingAndReturn2) .routingStage(SelectStage.PARSE_REQUEST, this::doSomethingAndReturn3) .routingStage(SelectStage.PARSE_REQUEST, this::doSomethingAndReturn4) .routingStage(SelectStage.PARSE_REQUEST, (SelectContext<P1> s) -> ProcessorOutcome.CONTINUE) .routingStage(SelectStage.PARSE_REQUEST, s -> ProcessorOutcome.CONTINUE); }