Dividir cadeia com uma única ocorrência (não duas vezes) de um delimitador em JavaScript

Isso é melhor explicado com um exemplo. Eu quero conseguir uma divisão como esta:

two-separate-tokens-this--is--just--one--token-another

->

["two", "separate", "tokens", "this--is--just--one--token", "another"]

Eu ingenuamente tenteistr.split(/-(?!-)/) e não corresponderá à primeira ocorrência de delimitadores duplos, mas corresponderá ao segundo (como não é seguido pelo delimitador):

["two", "separate", "tokens", "this-", "is-", "just-", "one-", "token", "another"]

Eu tenho uma alternativa melhor do que percorrer a string?

A propósito, o próximo passo deve ser substituir os dois delimitadores consecutivos por apenas um, então é meio que escapar do delimitador repetindo-o ... Então o resultado final seria:

["two", "separate", "tokens", "this-is-just-one-token", "another"]

Se isso puder ser alcançado em apenas um passo, isso deve ser realmente incrível!

questionAnswers(3)

yourAnswerToTheQuestion