Our ruleset is a bit less strict. We don't promise BC on classes. That's part of the reason why most classes in Behat are `final`. We promise BC on interfaces and service constants only. And there's not much harm you can do using those both ;) So in our case there should be even less confusion when are you crossing the BC zone than in Symfony2 - follow interfaces and you're safe.