'Stores the messages, returning any unstored messages after trying all
backends.
For each storage backend, any messages not stored are passed on to the
next backend.'

def _store(self, messages, response, *args, **kwargs):

    for storage in self.storages:
        if messages:
            messages = storage._store(messages, response, remove_oldest=False)
        elif (storage in self._used_storages):
            storage._store([], response)
            self._used_storages.remove(storage)
    return messages
