O C # inclui máquinas de estados finitas?

Eu li recentemente sobre oboost::statechart biblioteca (máquinas de estados finitos) e adorei o conceito.

C # tem um mecanismo semelhante? Ou pode ser implementado usando um padrão de design específico?