CJam, 43 40 35 3434 33 bytes
1 byte2 bytes saved by Sp3000.
This started out as a really elegant solution and then grew increasingly hideous as I tried patching up some holes I overlooked. I'm not sure yet if the original idea is still salvageable, but I'll try my best...
q~_,,\ff{&W+0=)}_z..-:ee{~_,{;(}|,+}f%`%` [Test it here.][1] Alternatively, [run the entire test harness][2].
I'll add an explanation once I'm sure the patient is dead.
[1]: http://cjam.aditsu.net/#code=q~_%2C%2C%5Cff%7B%26W%2B0%3D)%7D_z..-%7Bee%7B1%3D%7D%2C0f%3D%7D%25%60&input=%5B%5B1%200%5D%20%5B5%201%5D%20%5B5%5D%20%5B1%5D%20%5B5%207%5D%20%5B7%201%5D%20%5B%5D%20%5B1%5D%5D [2]: "/0=',Ser:Q;Q~_,,\ff{&W+0=" rel="nofollow noreferrer">http://cjam.aditsu.net/#code=qN%2F%7B%22-%3E%22%2F0%3D'%2CSer%3AQ%3B%0A%0AQ~_%2C%2C%5Cff%7B%26W%2B0%3D)%7D_z..-%7Bee%7B1%3D%7D%2C0f%3D%7D%25%60%0A%0AoNo%7D%2F&input=%5B%5D%20-%3E%20%5B%5D%0A%5B%5B0%5D%5D%20-%3E%20%5B%5B%5D%5D%0A%5B%5B%5D%2C%5B0%2C1%5D%5D%20-%3E%20%5B%5B1%5D%2C%5B0%5D%5D%0A%5B%5B0%2C1%5D%2C%5B%5D%5D%20-%3E%20%5B%5B1%5D%2C%5B0%5D%5D%0A%5B%5B0%2C1%5D%2C%5B0%5D%2C%5B1%2C0%2C3%5D%2C%5B%5D%5D%20-%3E%20%5B%5B1%2C2%5D%2C%5B0%2C2%5D%2C%5B0%2C1%2C3%5D%2C%5B2%5D%5D%0A%5B%5B3%5D%2C%5B%5D%2C%5B5%5D%2C%5B3%5D%2C%5B1%2C3%5D%2C%5B4%5D%5D%20-%3E%20%5B%5B3%5D%2C%5B4%5D%2C%5B5%5D%2C%5B0%2C4%5D%2C%5B1%2C3%2C5%5D%2C%5B2%2C4%5D%5D%0A%5B%5B0%2C1%5D%2C%5B6%5D%2C%5B%5D%2C%5B3%5D%2C%5B3%5D%2C%5B1%5D%2C%5B4%2C2%5D%5D%20-%3E%20%5B%5B1%5D%2C%5B0%2C5%2C6%5D%2C%5B6%5D%2C%5B4%5D%2C%5B3%2C6%5D%2C%5B1%5D%2C%5B1%2C2%2C4%5D%5D%0A%5B%5B6%5D%2C%5B0%2C5%2C1%5D%2C%5B5%2C4%5D%2C%5B3%2C5%5D%2C%5B4%5D%2C%5B5%2C6%5D%2C%5B0%2C3%5D%5D%20-%3E%20%5B%5B1%2C6%5D%2C%5B0%2C5%5D%2C%5B4%2C5%5D%2C%5B5%2C6%5D%2C%5B2%5D%2C%5B1%2C2%2C3%2C6%5D%2C%5B0%2C3%2C5%5D%5D%0A%5B%5B1%2C0%5D%2C%5B5%2C1%5D%2C%5B5%5D%2C%5B1%5D%2C%5B5%2C7%5D%2C%5B7%2C1%5D%2C%5B%5D%2C%5B1%5D%5D%20-%3E%20%5B%5B1%5D%2C%5B0%2C3%2C5%2C7%5D%2C%5B5%5D%2C%5B1%5D%2C%5B5%2C7%5D%2C%5B1%2C2%2C4%2C7%5D%2C%5B%5D%2C%5B1%2C4%2C5%5D%5D%0A%5B%5B2%2C8%2C0%2C9%5D%2C%5B5%2C2%2C3%2C4%5D%2C%5B0%2C2%5D%2C%5B3%2C7%2C4%5D%2C%5B8%2C1%2C2%5D%2C%5B5%2C1%2C9%2C2%5D%2C%5B6%2C9%5D%2C%5B6%2C5%2C2%2C9%2C0%5D%2C%5B9%2C1%2C2%2C0%5D%2C%5B3%2C9%5D%5D%20-%3E%20%5B%5B2%2C7%2C8%2C9%5D%2C%5B2%2C3%2C4%2C5%2C8%5D%2C%5B0%2C1%2C4%2C5%2C7%2C8%5D%2C%5B1%2C4%2C7%2C9%5D%2C%5B1%2C2%2C3%2C8%5D%2C%5B1%2C2%2C7%2C9%5D%2C%5B7%2C9%5D%2C%5B0%2C2%2C3%2C5%2C6%2C9%5D%2C%5B0%2C1%2C2%2C4%2C9%5D%2C%5B0%2C3%2C5%2C6%2C7%2C8%5D%5D