Не знаю как подобное сделать на чистом js, но я бы такое реализовал при помощи роутера (Роутер можно легко сделать самому при помощи url api), то есть каждая такая страница - новая страница, кнопка назад просто ведёт назад по страницам.
По другому в голову не приходит если честно.