GUI Nav Builder

A nested structure field is the best option. Inside the nested structure, use a pages field.

See example here: How to control which parent menu items are shown?

The only downside is that you would have to define in advance how many levels your navigation should have.