Transforms beliefs into valid strings if possible and parses any options.

        Beliefs will always be lowercased.
        If it has spaces, they are converted to underscores ex: "Sensor Names" -> "sensor_names"

        Options:
            Multiple values: a belief with a suffix of "*" will allow multiple values returned from the get
                             when used with MultipleXmlDogma.

def _fixup_belief(cls, belief):
        """
        Transforms beliefs into valid strings if possible and parses any options.

        Beliefs will always be lowercased.
        If it has spaces, they are converted to underscores ex: "Sensor Names" -> "sensor_names"

        Options:
            Multiple values: a belief with a suffix of "*" will allow multiple values returned from the get
                             when used with MultipleXmlDogma.
        """
        extra = {}
        belief = belief.lower()

        if ' ' in belief:
            belief = belief.replace(' ', '_')

        if belief.endswith("*"):
            belief = belief[:-1]
            extra['multiple'] = True

        # check for invalid characters in the belief which is used as a property name
        if re.match('^[\w-]+$', belief) is None:
            raise DogmaMetaClassException('''blasphemous belief! (property name: '%s') - even god can not make properties with non-alpha-numeric symbols or whitespace''' % belief)

        if belief.startswith('_'):
            raise DogmaMetaClassException('''Blasphemous belief! (property name: '%s') - even god can not make properties that start with an underscore''' % belief)

        return belief, extra