I'm pretty sure that your current map won't allow that.  You need a key that doesn't include regions.  In fact, I recommend having a RailroadId property and column, and don't use any of GameID, EndRegion or BeginRegion in Railroad's key.
Unfortunately for you, NHibernate is based off Hibernate2, so you can't use property-ref in one-to-many mappings (that's only supported in 3.1+).  But you can use a unidirectional many-to-one mapping to accomplish precisely the same thing.  The ultimate mapping will be something to this effect:
Code:
 <class name="Supremacy.DataAccess.DbObjects.Railroads, DataAccess" table="railroad">
  <id name="RailroadId" column="RailroadId" type="integer>
    <generator class="native"/>
  </id>
  <!-- Maybe these are many-to-ones? -->
  <property name="BeginRegion" column="beginregion"/>
  <property name="EndRegion" column="endregion"/>
  <property name="GameID" column="gameid"/>
  <bag name="Into" inverse="true" cascade="all">
    <key>
      <column name="gameid"/>
      <column name="beginregion"/>
    </key>
    <many-to-one class="Supremacy.DataAccess.DbObjects.Railroads, DataAccess">
      <column name="gameid"/>
      <column name="endregion/>
    </many-to-one>
  </bag>
</class>
I'm not exactly sure what features NHibernate currently supports, and there are several abbreviations available in recent hibernate release that make this mapping easier to read (property-ref is added all over the place, very handy), but this or something like it should do what you need.