Right now we only allow passes to be registered multiple times, as long
as they have the same TypeId. For PassPipelines this was simply not
allowed. This creates problems when you have a pipeline that is specific
to a dialect and load them both at the same time in the python bindings.
If you have a python file with multiple tests each having its own
context and want to load your dialect, you will hit this assert.
On a side-note: We are handling the dialect registry with the
MLIRContext. There is nothing similar for
passes, they are managed by a ManagedStatic StringMap. Is there a
specific reason for that?