<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def send_signal(self, backend, signal):
 """ Sends the `signal` signal to `backend`. Raises ValueError if `backend` is not registered with the client. Returns the result. """

        backend = self._expand_host(backend)
        if backend in self.backends:
            try:
                return self._work(backend, self._package(signal), log=False)
            except socket.error:
                raise BackendNotAvailableError
        else:
            raise ValueError('No such backend!')