Simple solution for 2.0:
Dictionary + lock-statement in DefaultPipelineRegistry should be replaced by ConcurrentDictionary.
current implementation contains two fields, those must be unified to a single field, otherwise we have race conditions.
The DefaultPipeline can be accessed without a lock statement.
Access to the registered pipelines via IPipelineRegistry.Get(...) still requires a lock-statement for concurrency reasons.
Advanced solution for 3.0: See