unless the consequence itself is something that signifies the end of a basic block, like a break or a next or a return.
backtrack = true unless consequence.signifies? :block_end
It doesn't seem that much harder to read.To avoid excessive test coverage it would be more pragmatic to do:
backtrack = (consequence.signifies? :block_end) ? false : true
But that's not as easy to read :(A lot of software engineering lore crumbles into tautologies or is completely obviated when you're working at the microscopic level.