extract listNeighbours()

And change spelling to Canadian because I keep typing it with /u/.
extract findChain's functional implementation
refactor findChains