Events and priorities looks a bit overcomplicated. Why do we need to enable priorities? It should be enabled always. In case when a priority doesn't matter, then default priority should be used. Otherwise if I attach a couple hooks with some priorities, enable priorities for event manager and attach more hooks, then the execution queue will be messed.

Further more... The hooks with the same priority are sorted and run in the wrong order. It makes difficulties when you have vary amount of hooks.

What do you think?