Graph Structure and Monadic Second-Order Logic by Bruno Courcelle & Joost Engelfriet