public static function pluck(array $array, $directions, $safe = false)
    {
        if ((is_string($directions)
                || is_int($directions))
            && isset($array[$directions])) {
            // If $directions is a key, just return the value for that key.
            return $array[$directions];
        } elseif (is_array($directions)) {
            // If $directions isn't a key, then we have more work to do.
            if (count($directions) === 1) {
                // If $directions has only one value, call array_pluck()
                // with that one value as the key.
                return static::pluck($array, $directions[0], $safe);
            } elseif (isset($array[$directions[0]])) {
                // If $directions is still a multi-value array, then we
                // have more work to do. Get rid of the direction we're
                // on, and start recursing.
                $key = array_shift($directions);
                return static::pluck($array[$key], $directions, $safe);
            }
        }

        if ($safe === true) {
            return null;
        } else {
            return new ZenodorusError([
                'code'        => "pluck::not-found",
                'description' => "Arrays::pluck() could not find the value 
                    you're looking for.",
                'data'        => ['array' => $array, 'directions' => $directions],
            ]);
        }
    }