@Override
    protected Iterator<E> flatMap(final Traverser.Admin<S> traverser) {
        final Traverser.Admin<S> innerTraverser = traverser.clone().asAdmin();
        innerTraverser.setBulk(1L);
        for (final Traversal.Admin<S, E> coalesceTraversal : this.coalesceTraversals) {
            coalesceTraversal.reset();
            coalesceTraversal.addStart(innerTraverser.split());
            if (coalesceTraversal.hasNext())
                return coalesceTraversal;
        }
        return EmptyIterator.instance();
    }
@author Daniel Kuppitz (http://gremlin.guru)
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CoalesceStep.java