public static function get($data, string $path, $default = null)
    {
        Assert::isArrayAccessible($data);
        Assert::stringNotEmpty($path);

        $path = explode('/', $path);

        while (($part = array_shift($path)) !== null) {
            if ((! is_array($data) && ! ($data instanceof ArrayAccess)) || ! isset($data[$part])) {
                return $default;
            }
            $data = $data[$part];
        }

        return $data;
    }