I do not have an automated solution. I do however have a couple of theories that checkout:
I know that in order to get a solution with crossed lines, you need at lest one tile with crossed lines.
I also know that a set of tiles can solve any puzzle if every line can reach every position (assuming the size of the puzzle is big enough). That's also why I slowly increase the puzzle size as the puzzles get more complicated.