This is a simple workflow event that will extract a member type attribute (single select) and use it to assign the member into a group on register.
It catches not only self-registration, but updates made through the admin interface.
You can place your nodes where you like. Be sure the names under [MemberGroup] are identical to the options in the selection attribute added to the class used for user registration. This code uses a custom Member class to distinguish eZ Users from site members.