For a rigorous treatment singularities need to be properly defined.
Let z be ah independent variable and w a dependent variable related by a polynomial equation f(w,z) = 0.
Z is a pole if at least one value of w can be made arbitrarily large by requiring z to be sufficiently close to Z. There ia a "pole at infinity"  if at least one value of w can be made arbitrarily large by requiring z to be sufficiently large. Exchanging the two variables above gives an inverse pole.
Those definitions are modulus-related. The ones which follow are argument-related.
W is a node and Z is its branch-point if as z tends to Z at least two w-values with different arg(w-W) values tend to W. A value for w which satisfies f(w,Z) = 0 without being a node is a conode.
There is a node at infinity and Z is its branch-point if as z tends to Z at least two values for w with different arguments tend to infinity.
W is a node and infinity is its branch-point if two or more values for w with different arguments and w-W arbitrarily small can be got by requiring z to be sufficiently large.
There is a node at infinity and infinity is its branch-point if two or more values for w  which differ in their arguments and have arbitrarily large modulus can be got by requiring z to be suffiently large.
It is easy to make up examples and classify them. Hint: Where there are a number of terms use Newton's polygon.