private function setColour($colour)
    {
        if (!in_array($colour, $this->getDefaultColours()) &&
            !preg_match(
                '_^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$_',
                $colour
            )
        ) {
            throw new InvalidColourException(
                sprintf(
                    'The colour "%s" is not a valid colour. Possible options are "%s" or a valid hex colour',
                    $colour,
                    implode('", "', $this->getDefaultColours())
                )
            );
        }

        $this->colour = $colour;
    }