Implement recursion strategy using IteratorAggregate (Issue #714)