(EDIT) Take the custom rules outside the # Begin WordPress (credit to Tim Malone)
You can check if the file exists in the root and load it before the WordPress rules kick in:
# check for a file, i.e register.php
# load it if found and stop processing the rest of the rules with the [L] flag
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteCond %{REQUEST_URI} !/$1.php
RewriteRule ^(.*) /$1.php [L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
http://url/register will then open the register.php file in the root.
If the file is not found, the WordPress rules are processed.