Under the hood
Plugin event dispatch can now skip clauses that have already been registered
What
The function that matches an incoming event against a plugin's declared clauses (conditions that trigger a plugin handler) and builds the resulting handlers now accepts a list of clause indexes to skip, and passes along a registration value to each per-clause handler. Clauses whose index is in the skip list are no longer matched again.
Why
This avoids re-registering or re-triggering a plugin clause that's already been registered, preventing duplicate handler invocations for the same event clause.