Index: rewrite.php
===================================================================
--- rewrite.php	(revision 17731)
+++ rewrite.php	(working copy)
@@ -95,109 +95,127 @@
 
 //pseudo-places
 /**
+ * Safe, extendable way to add an EP_MASK constant.
+ *
+ * @since 3.2
+ *
+ * @param string $constant a name use for the costant.
+ */
+function register_epmask( $constant ) {
+	global $wp_ep_incement; // introduce new global
+	$value;
+	if ( ! isset( $wp_ep_incement) )
+		$value = $wp_ep_incement = 0;
+	else
+		$value = pow( 2, $wp_ep_incement++ );
+	
+	define( 'EP_' . strtoupper( $constant ), $value );
+}
+
+/**
  * Endpoint Mask for default, which is nothing.
  *
  * @since 2.1.0
  */
-define('EP_NONE', 0);
+register_epmask( 'NONE' ); // value: 0
 
 /**
  * Endpoint Mask for Permalink.
  *
  * @since 2.1.0
  */
-define('EP_PERMALINK', 1);
+register_epmask( 'PERMALINK' ); // value: 1
 
 /**
  * Endpoint Mask for Attachment.
  *
  * @since 2.1.0
  */
-define('EP_ATTACHMENT', 2);
+register_epmask( 'ATTACHMENT' ); // value: 2
 
 /**
  * Endpoint Mask for date.
  *
  * @since 2.1.0
  */
-define('EP_DATE', 4);
+register_epmask( 'DATE' ); // value: 4
 
 /**
  * Endpoint Mask for year
  *
  * @since 2.1.0
  */
-define('EP_YEAR', 8);
+register_epmask( 'YEAR' ); // value: 8
 
 /**
  * Endpoint Mask for month.
  *
  * @since 2.1.0
  */
-define('EP_MONTH', 16);
+register_epmask( 'MONTH' ); // value: 16
 
 /**
  * Endpoint Mask for day.
  *
  * @since 2.1.0
  */
-define('EP_DAY', 32);
+register_epmask( 'DAY' ); // value: 32
 
 /**
  * Endpoint Mask for root.
  *
  * @since 2.1.0
  */
-define('EP_ROOT', 64);
+register_epmask( 'ROOT' ); // value: 64
 
 /**
  * Endpoint Mask for comments.
  *
  * @since 2.1.0
  */
-define('EP_COMMENTS', 128);
+register_epmask( 'COMMENTS' ); // value: 128
 
 /**
  * Endpoint Mask for searches.
  *
  * @since 2.1.0
  */
-define('EP_SEARCH', 256);
+register_epmask( 'SEARCH' ); // value: 256
 
 /**
  * Endpoint Mask for categories.
  *
  * @since 2.1.0
  */
-define('EP_CATEGORIES', 512);
+register_epmask( 'CATEGORIES' ); // value: 512
 
 /**
  * Endpoint Mask for tags.
  *
  * @since 2.3.0
  */
-define('EP_TAGS', 1024);
+register_epmask( 'TAGS' ); // value: 1024
 
 /**
  * Endpoint Mask for authors.
  *
  * @since 2.1.0
  */
-define('EP_AUTHORS', 2048);
+register_epmask( 'AUTHORS' ); // value: 2048
 
 /**
  * Endpoint Mask for pages.
  *
  * @since 2.1.0
  */
-define('EP_PAGES', 4096);
+register_epmask( 'PAGES' ); // value: 4096
 
 /**
  * Endpoint Mask for everything.
  *
  * @since 2.1.0
  */
-define('EP_ALL', 8191);
+register_epmask( 'ALL' ); // 8191
 
 /**
  * Add an endpoint, like /trackback/.
