Reusable Pipelines

We have a problem with Reuse, but more constrained environments might have a hope of solving this; if not at the very least, plucking the low hanging fruit.

Being able to version pipelines is crucial to being able to reuse them. This would work well if pipelines could be viewed as just composed functions. Perhaps even strongly typed?