Hhmm I don't like this. I ABSOLUTELY want to keep the functionality of passing directly the assertion as a callable or creating the assertion. Normally, the right order should be ($permission, $assertion, $context). $assertion and $context could be null, and if $assertion is null, it fallback to the assertion map. but I really want it!