public PipesPipeline<S, E> aggregate(final PipeFunction<E, ?> aggregateFunction) {
return this.aggregate(new ArrayList(), FluentUtility.prepareFunction(this.asMap, aggregateFunction));
}
public PipesPipeline<S, ?> optional(final int numberedStep) {
return this.add(new OptionalPipe(new Pipeline(FluentUtility.removePreviousPipes(this, numberedStep))));
}