Do not invoke callbacks infinitely and allow to configure the number of iterations
One can present examples when bugs will be discovered just after several, perhaps many invocations of callback chains. However, in practice we detect most bugs during a first invocation of callbacks and just a few bugs are revealed during a second iteration. So, I suggest to reduce the number of callback invocations to 2 at most. Moreover, it would be great to have an option to configure that number easily. In many cases users may want to invoke all callbacks one time at most.