I just thought I'd point out a bug related to the shortcode routing. I had the problem where I created a custom registration page but the page was showing both login and registration forms.
The problem turned out to be line 209 of wp-members-core.php:
$page = ( 'user-profile' ) ? 'members-area' : $page;
The above line always returns true and turns $page into members-area.
The replacement line solved the problem:
$page = ( $page == 'user-profile' ) ? 'members-area' : $page;
Thought I'd let you know.
Thanks for the great plugin!