Make a call into the thread's StackInABox instance.

        :param method: HTTP Method (e.g GET, POST)
        :param request: a Request object containing the request data
        :param uri: the URI of the request submitted with the method
        :param headers: the return headers in a Case-Insensitive dict

        :returns: A tuple containing - (i) the Status Code, (ii) the response
                  headers, and (iii) the response body data

        This function should not emit any Exceptions

def call(self, method, request, uri, headers):
        """Make a call into the thread's StackInABox instance.

        :param method: HTTP Method (e.g GET, POST)
        :param request: a Request object containing the request data
        :param uri: the URI of the request submitted with the method
        :param headers: the return headers in a Case-Insensitive dict

        :returns: A tuple containing - (i) the Status Code, (ii) the response
                  headers, and (iii) the response body data

        This function should not emit any Exceptions

        """
        logger.debug('StackInABox({0}): Received call to {1} - {2}'
                     .format(self.__id, method, uri))
        service_uri = StackInABox.get_services_url(uri, self.base_url)

        for k, v in six.iteritems(self.services):
            matcher, service = v
            logger.debug('StackInABox({0}): Checking if Service {1} handles...'
                         .format(self.__id, service.name))
            logger.debug('StackInABox({0}): ...using regex pattern {1} '
                         'against {2}'
                         .format(self.__id, matcher.pattern, service_uri))
            if matcher.match(service_uri):
                logger.debug('StackInABox({0}): Trying Service {1} handler...'
                             .format(self.__id, service.name))

                try:
                    service_caller_uri = service_uri[(len(service.name) + 1):]
                    return service.request(method,
                                           request,
                                           service_caller_uri,
                                           headers)
                except Exception as ex:
                    logger.exception('StackInABox({0}): Service {1} - '
                                     'Internal Failure'
                                     .format(self.__id, service.name))
                    return (596,
                            headers,
                            'Service Handler had an error: {0}'.format(ex))
        return (597, headers, 'Unknown service - {0}'.format(service_uri))