I think you created some sort of mixed-element linked list while at the same time using a dictionary for fast lookup?

This is most definitely the wrong approach to a Python solution to the problem. All you need to do is keep track of the plugins in a particular category.
```python
self.plugins = {
    'audio output': [
        plugin1,
        plugin2,
    ],
    'audio input': [],
    ....
}
```
That sort of structure is all that would be required.