private static function checkSignatureMatch($provided, $requested) {

        if ( is_object($provided) ) {

            foreach ( $provided as $parameter=>$value ) {

                if (
                    !isset($requested[$parameter]) ||
                    !Validator::validate($value, $requested[$parameter])
                ) return false;

            }

        } else {

            $provided_parameters_count = count($provided);

            $requested_parameters_count = count($requested);

            if ( $provided_parameters_count != $requested_parameters_count ) return false;

            $index = 0;

            foreach ( $requested as $parameter => $type ) {

                if ( !Validator::validate($provided[$index], $type) ) return false;

                $index += 1;

            }

        }

        return true;

    }