Investigate Tracking Visited Pages Client-Side

Description: We currently refetch the session after every next page request. This works but is wasteful. If we have enough information client-side it would be better to update the session locally. This would require the algorithm for nodes visited to be well understood. Potential pitfalls include several visited nodes being added for one `next` request (e..g, maybe a reference nodes visits multiple nodes be landing on the correct child.)