string match returns NaN on non strings
Or just not respecting na flag.

```
In [44]: s = pd.Series(['a', 0, np.nan])

In [45]: s.str.contains('a', na=False)
Out[45]:
0     True
1    False
2    False
dtype: bool

In [46]: s.str.match('a', na=False)
Out[46]:
0    True
1     NaN
2     NaN
dtype: object
```
