private <X> List<X> concat(final Collection<X> existing, final X newItem) {
    final List<X> newList = new ArrayList<>(existing);
    newList.add(newItem);
    return newList;
  }
End the pipeline with a {@link Consumer} that is the last stage of the pipeline.

@param stageName the name of this stage. Used as the label for the output count metric.
@param completer the {@link Consumer} that accepts the final output of the pipeline.
@return the constructed pipeline ready to execute.
services/pipeline/src/main/java/org/hyperledger/besu/services/pipeline/PipelineBuilder.java