Variable path with label <= Please delete this post

MATCH path=(startNode)-[4]-(connectedNode) WHERE id(startNode) = 580
RETURN count(
)
count(*)
109 535 920
Started streaming 1 records in less than 1 ms and completed after 12068 ms.

MATCH (startNode)-[4]-(connectedNode:aLabel) WHERE id(startNode) = 580
RETURN count(
)
count(*)
51 542 905
Started streaming 1 records in less than 1 ms and completed after 16385 ms.

The case above is from a small graph(15K nodes/81K relationships). A bigger graph case was much worse than this.

I found that the node filter doesn't restrict the variable path at the start but it is applied after all variable path expansion. So the label filters add the time to process it.
How can I get better performance with labels filtered?