'Return the next immediate address that is inside any of the regions.
:param int address: The address to start scanning.
:return:            The next address that is inside one of the memory regions.
:rtype:             int'

def _next_address_in_regions(self, address):

    for (start_addr, end_addr) in self._regions:
        if (start_addr <= address < end_addr):
            return address
        elif (start_addr > address):
            return start_addr
    return None
