'A list of price regions sorted by name.
:param int provider: A provider, using the PAYMENT_* constant.
If not provided it will use settings.PAYMENT_PROVIDERS,'

def regions_by_name(self, provider=None):

    prices = self.prices(provider=provider)
    regions = set()
    append_rest_of_world = False
    for price in prices:
        region = RID[price['region']]
        if ((price['paid'] is True) and (region != RESTOFWORLD)):
            regions.add(region)
        if ((price['paid'] is True) and (region == RESTOFWORLD)):
            append_rest_of_world = True
    if regions:
        regions = sorted(regions, key=(lambda r: remove_accents(unicode(r.name))))
        if append_rest_of_world:
            regions.append(RESTOFWORLD)
    return (regions if regions else [])
