Homotopy extension property vs. good pairs
It seems to me the difference between the pair $(X,A)$ being a good pair and having the HEP is very slight, so this answer is meant as more of a comment to illustrate the differences.
Hatcher (in "Algebraic Topology", just after Theorem 2.13) defines $(X,A)$ to be a good pair if
$X$ is a space and $A$ is a nonempty closed subspace that is a deformation retract of some neighborhood in $X$.
In the same text, soon after Example 0.14, he defines the pair $(X,A)$ to have the homotopy extension property if, here for only $A$ a subspace of $X$ (no condition on $A$ being closed or non-empty),
$X\times \{0\}\cup A\times I$ is a retract of $X\times I$.
Most other sources do not use the phrase "good pair" and simply stick to HEP. One such source (in my opinion, the best source) is May. There (in "A Concise Course in Algebraic Topology", Chapter 6, Section 1), still only assuming $A$ is a subspace of $X$, the pair $(X,A)$ along with a map (not necessarily the inclusion) $i:A\to X$, is defined to have the homotopy extension property if
$i:A\to X$ is a cofibration.
In Section 4 of the same chapter, now assuming $A$ is closed in $X$, May shows that $(X,A)$ is a neighborhood deformation retract pair if and only if
- $X\times \{0\}\cup A\times I$ is a retract of $X\times I$, or
- the inclusion $i:A\hookrightarrow X$ is a cofibration.
In fact, now it seems Hatcher's definitions of good pair and having the HEP are equivalent from May's viewpoint. That's why, in my opinion, the phrase "good pair" is not the best approach to use, and instead we should talk about cofibrations that are or are not inclusions.