@Ocramius but we'll traverse it through `RecursiveRoleIterator` anyway, why another iterator?

Actually, `RecursiveRoleIterator` works best if it returns an array, I did a ugly hack to acept `Traversable`, see https://github.com/danizord/rbac/commit/4304f121e527864a6bdc93c8b804268138283ff2