They are not quite the same, but they are similar.
Two-year-old is an adjective. You can say, two-year-old girl, or two-year-old cat, or two-year-old child. Sometimes, two-year-old is used as a noun on its own, and it that case ("My two-year-old", say), child is usually implied, although it could refer to an animal if the context is clear. It's a compound adjective, with dashes to make it clear it is all one phrase, and it is usually pronounced with the words run together. You might see it without the dashes, and it is usually clear what is meant.
You can't say "My daughter is two-year-old". In that case you say "My daughter is two years old".
I think the reason why it's year, when with dashes, is because the words are run together, and years would be hard to say.
Both bump into and run into
mean to 'meet someone by chance'. (Oxford dictionary definitions)
They are interchangeable.
I think I use run into more often. Bump into sounds a little old fashioned or even "weird" to me.
Best Answer
There is a slight, but meaningful, difference.
"Once a [time period]" implies frequency observed over a range of time greater than [time period]. "Once in a [time period]" implies an observed frequency of 1 in a single [time period].
If somebody were to say something occurred once in a month then he means he is talking about an event with a time of a month. If someone says something occurs once a month then he definitely has data larger than a month.
Example:
Another example:
As FumbleFingers brings up in the comments, the "once in a [time period]" could instead be an application of figurative speech and not based on technical data. The following example shows a usage of the phrase that indicates exaggerated speech is at play.
This is perhaps more indicative of a common idiom but still important to bring up.
To slightly elaborate on what was established above, it may not be obvious that the phrase "once in a [time period]" can be used to establish a cap on repetitions in a [time period]. See below.