como encontrar todos os caminhos mais longos com consulta cypher?

Eu quero escrever uma consulta cypher que encontra todos os caminhos mais longos entre os nós que têm relação com a propriedade STATUS = "on" entre si, isso é o que eu fiz até agora:

start n=node(*) 
match p = n-[r:INCLUDE*..]->m 

with n,MAX(length(p)) as l 
match p = n-[r:INCLUDE*..]->m 
WHERE all(rel in r 
 where rel.status='on' AND (length(p) = l) )
return p,l 

Ele retorna 3 caminhos com 1,2 e 3 de comprimento, não apenas o caminho mais longo, minha consulta deve encontrar apenas os caminhos mais longos, quero dizer, se existem 8 caminhos que se adequam ao meu primeiro onde condição (where rel.status='on'), com o comprimento de 1,2,3,3,4,6,6,6, apenas os três caminhos com o comprimento de 6 devem ser devolvidos.

que shoud eu faço?

por favor me guie, eu sou novo em neo4j, e tentei muito, mas não tenho nada além de tontura, eu serei muito grato por sua ajuda.