improved bigram lookahead (can recursively follow null nodes)

The old implementation was assuming (with an assert) that null nodes could only be followed by one arch. This implementation follows arbitrary number of arcs.