Navigation implements a design pattern that allows
you to navigate through complex systems by means
of "navigation chains". Each node in the
navigation chain is represented as its own object,
and can have any number of child links attached to
it (done through upwards linking; navigations have
no knowledge of their children). This means that
you can create a navigation chain to a common
point in your system, and then attach multiple
subchains at that point. The proof-of-concept
handles most HTML navigation requirements, and is
used by the author to test Web applications.