"diagonal_passages" experimental branch is successful enough to drop it back into main.
Still any number of issues to be fixed but I think it's an improvement over the previous code.

Squashed commit of the following:

commit 00c1c20e196b45b48158430420b22af456c29b5b
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Mon Nov 25 11:51:49 2013 -0500

    Extracted generate_intersections() function

commit 6a564b23e94465bce8a6f20dfdff68829248494f
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Fri Nov 22 22:43:47 2013 -0500

    Added unit test code for construct_intersection()

commit 87a66336ab084c88dd2f90c4151da866ebb6b46f
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Fri Nov 22 11:35:54 2013 -0500

    better grid_aligned() logic

commit 11dafca832b2f0adfd17cc87933f077d5c5859ac
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Fri Nov 22 11:27:57 2013 -0500

    Fixed an issue with odd-room exit construction seen in seed 426374163

commit 8547a8cd81c0fddfbb687a03568e80f337268241
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Fri Nov 22 11:15:32 2013 -0500

    Addressed unnecessarily large 135-degree intersections

commit e2755ffea5bd1038a90cdaa410d3f503042573de
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Fri Nov 22 09:26:15 2013 -0500

    All Connections now have draw_lines

commit 9fc03a06da4782d83fa7ffb8738dad7e2bbeee1f
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Thu Nov 21 14:35:46 2013 -0500

    Improved display of arches - fixes #22

commit 13c4a725f7d3406c38c1b21f60350aff59072c6d
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Thu Nov 21 14:33:34 2013 -0500

    Fixed erroneous connection creation in extend_passage()

commit 41570b0d7ad6cdcd27707dcbe0851f5fe579a518
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Thu Nov 21 13:51:38 2013 -0500

    Reenabled truncation check in extend_passage()

commit 99116858e0b8b9166de65f1a19ab3daf3eda03f0
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Thu Nov 21 11:12:51 2013 -0500

    Fixed issue with connection collision detection

commit e32b1097173f0d04e892d600253e316833dca0c8
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Thu Nov 21 11:09:32 2013 -0500

    fixed oversight in grid_aligned()

commit 14c587f79a557d43edbcac519753ce428aae04fc
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Thu Nov 21 11:06:35 2013 -0500

    sweep_corner() is dead. Long live generate_intersection()

commit a8cfdb0a07d02319f263a91043d2ebc74f934e8c
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Thu Nov 21 10:41:08 2013 -0500

    misc

commit 8bdd3daca1684ac014dee6964d2f614e88b5e629
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Wed Nov 6 12:52:45 2013 -0500

    Added diagonal support in find_edge_segments()

commit 5c24a80273bab1dc4b13d0dcd68c0488ea3f55ee
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Wed Nov 6 12:31:15 2013 -0500

    Converted diagonal connections to proper diagonals

commit 63e62bed7a8dac18dc17df952dd6e3b8fa5867c9
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Wed Nov 6 12:25:04 2013 -0500

    Removed Connection grow_dir/base_dir distinction

commit f64e9a89ee2e54b722269ffdb339d9d4fc30031d
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Wed Nov 6 10:57:00 2013 -0500

    added loft_to_grid(), fixup conns for non-rectangular rooms

commit fb6e1b43315cd6898f77647ab75f493275310433
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Tue Nov 5 16:56:45 2013 -0500

    Split find_edge_segments() out of find_options_for_connection()

commit c2e286e5e94dc80a199f77fb279b4eb36f2806f7
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Tue Nov 5 16:12:06 2013 -0500

    Various enhancements

commit 8d9ecc4fc6a30618b25a7eaa7121c722334f5d1b
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Tue Nov 5 12:58:27 2013 -0500

    Removed translate_manhattan()

commit 7a11c872ca0ec27efb34addf86af2a0c55c86d2e
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Tue Nov 5 10:57:44 2013 -0500

    Added manhattan length() function

commit 10d0b0f1b53ac0b3601275ce7b6855d8cde6ca06
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Tue Nov 5 10:43:34 2013 -0500

    Refactored Direction class to provide factories instead of direct instantiation

commit 06dbe6a324b64e0b5707672e63c60dfe60b17194
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Sun Nov 3 13:46:08 2013 -0500

    Code cleanup

commit 41fc8f3b068c703185fdf00c7f95708b6eb8be76
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Sat Nov 2 23:23:37 2013 -0400

    Start using construct_intersection() in generator

commit eea5950283f8b15dd7240aeb0db869c0ae8c00db
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Sat Nov 2 23:09:07 2013 -0400

    construct_intersection() complete?

commit 634a5719324e7389c42dbe17f6c67cfba8b20369
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Sat Nov 2 22:50:27 2013 -0400

    More construct_intersection() cases

commit 60a5387ed13f1a9bd0b45dafcf256d97c2f684c9
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Fri Nov 1 15:30:13 2013 -0400

    construct_intersection() for 135-degree intersections

commit 91e01c997f9612e037951570b60c32bc2a4f4b17
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Fri Nov 1 11:00:24 2013 -0400

    Added __eq__ method

commit 91957f93a007083785ebec09bb7858aeb29a4a4b
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Thu Oct 31 16:10:38 2013 -0400

    Created diagonal_to_cardinal() and cardinal_to_diagonal()

commit 13d7a654e22ff4c1b3f9c822dc5f671cb2665fec
Author: Glenn Matthews <glenn@e-dad.net>
Date:   Thu Oct 31 10:10:03 2013 -0400

    Minor cleanup of union() function