Lista circular um pouco diferente

Boa noite, pessoal. Eis o meu problema:

tenho uma série de itens que possuem referência para o próximo e para o anterior, sendo que o último item aponta para o primeiro e vice-versa. Até aí tudo normal, é uma lista circular duplamente encadeada como todos conhecem. Porém ela tem um comportamento especial: se eu atingir determinador nó ela não deve mais voltar para alguns nós. Ou seja, a lista “diminui o tamanho” de navegação. Um exemplo para clarificar:

Digamos que eu tenha uma lista com os valores: 1 2 3 4 5 6 7

Do 1 eu posso ir para o anteior(7) ou para o próximo (2). Porém se eu for do 2 para o 3 eu não posso mais voltar para o 1 e o 2. O anterior do 3 deve ser o 7 e o próximo do 7 deve ser o 3. O 1 e o 2 estarão acessíveis apenas se alguém setar eles manualmente, via próximo e anterior não há mais como chegar neles. Caso seja setado manualmente o 1 ou o 2 as regras iniciais devem voltar a valer, o próximo do 7 é o 1 e o anterior do 1, como sempre foi, é o 7. E o ciclo recomeça.

Preciso fazer isso em Javascript, então Collections do java não servirá. Qualquer de como resolver o problema é bem vinda =)