def METHOD_NAME(self, snap, channel='stable', revision=None, reboot=False):
    path = self._snaps + '/' + snap
    data = {'action': 'revert', 'channel': channel}
    if revision is not None:
        data['revision'] = revision
    r = self._post(path, json.dumps(data))
    if r['type'] == 'async' and r['status'] == 'Accepted' and not reboot:
        self._poll_change(r['change'])
    return r