Encapsulate the words with the \b, meaning word boundary. It will only trigger then if it is surrounded by a non-word character, like punctuation or a space etc.
alias swear return $regex($1-,/\b(?:dick|penis)\b/Sig)
EDIT: Check out this
regex tutorial.